require "core.pl";

&get_query;
$act=$queryString{ "act" };
if (!$act){$act = "add";}

print "Content-type: text/html; charset=utf-8\n\n";
use Switch;
switch ($act)
{
	case "add"
	{
		############################## КАПЧА!!##########################################################################
		use Authen::Captcha;
		use Digest::MD5 qw( md5_hex );
		my $cap_data_folder = "$DOC_ROOT/tmp/captcha"; # Здесь будет находиться текстовый файл с кодами CAPTCHA
		my $cap_out_folder = "$DOC_ROOT/tmp/captcha/img"; # Тут расположены проверочные изображения CAPTCHA
		my $cap_length = 6; # Из скольки символов будет состоять капча
		my $captcha = Authen::Captcha->new( data_folder => $cap_data_folder, output_folder => $cap_out_folder,);
		my $md5sum = $captcha->generate_code($cap_length);
		#################################################################################################################

			print qq{
				<ifame>
				<form action="?act=add-ok" method="post" enctype="multipart/form-data" heigth="100%">
						<input type="file" name="file" heigth="100%" /><br /> 
						<div id="captcha_img">
							<img src="http://xepec.ru/tmp/captcha/img/$md5sum.png" />
							<span onclick="reload_captcha();" title="Перегрузить" >
								<img src="/picture/reload.gif" style="border:0;" width="12px" height="13px" alt="Перегрузить" />
							</span>
						</div>
						<input type="text" size="6" maxlength="6" name="captcha" value="" id="captcha" /><br />
						<input type="submit" value="Загрузить" /><br />
				</form>
				</ifame>
				};
	}
	case "add-ok"
	{
		use CGI;
		my $cgi = new CGI;
		################################################## Капча #############################################
		use Authen::Captcha;
		use Digest::MD5 qw( md5_hex );
		my $cap_data_folder = "$DOC_ROOT/tmp/captcha"; # Здесь будет находиться текстовый файл с кодами CAPTCHA
		my $cap_out_folder = "$DOC_ROOT/tmp/captcha/img"; # Тут расположены проверочные изображения CAPTCHA

		my $captcha = Authen::Captcha->new( data_folder => $cap_data_folder, output_folder => $cap_out_folder, );

		my $cap_input_value =  $cgi->param("captcha");

		my $md5sum = md5_hex($cap_input_value); # Вычсляем md5 хэш для пользовательского ввода
		my $result_captcha = $captcha->check_code($cap_input_value,$md5sum);
		################################################## Капча #############################################
		
		
		#if ($result_captcha == "1")
		#{
			
			my $dir = "/tmp/upload";
			
			my $file = $cgi->upload('file');
			$file =~ s"/"_"g;
			$file =~ m/(.*)\.(.*)/;
			my $type = $2; #Расширение загружаемого файла
						
			$size = $ENV{ "CONTENT_LENGTH" }; # Размер загружаемого файла
			###########################Запись в базу#########################
			$dbcnx->do(qq{INSERT INTO upload VALUES (0,'$file', '$size', '0')}) or die("Ошибка с сервером xepec.ru #1");
			#################################################################
			
			$ath = $dbcnx->prepare(qq{SELECT id FROM upload});
			$ath->execute();
			if (!$ath)  {die("db error (error #2)");}# return false;}
			my $file_id = $ath->rows();
			
			my $file_name =$file_id.".".$type;
			#$file_name = time()."_".int(rand(100000)).".$type";
			
			open(FILE, ">$DOC_ROOT/$dir/$file_name") or die $!;
			while(<$file>) {
				print FILE $_;
			}
			print qq{Файл был успешно загружен... Спасибо.<a href="http://xepec.ru/tmp/upload/$file_name">$file_name</a>\n};
		#}
		#else
		#{
		#	print "Неправельный код подтверждения!\n";
		#}
	}
}
